Using the Sorting Filter
Sorting Filter either orders 3D nodes by their position on the z axis or groups them by their material type.
For example, use sorting filters to optimize the performance of your Kanzi application:
- Preventing overdraw. Excessive overdraw can decrease performance on the GPU in the form of increased fill-rate. See Preventing overdraw with the Sorting Filter.
- Rendering transparent objects. Because visualization of transparent nodes relies on having proper data behind them, in order to solve the blending equations properly, to correctly render transparent nodes, you must render them from back to front. See Rendering partially transparent nodes.
- Reducing shader switches. If nodes are presented in an order that requires excessive switching between shader programs, the rendering can slow down. See Reducing shader switches.
To use the Sorting Filter:
- In the Library press Alt and right-click Rendering > Object Sources and select Sorting Filter.
- In the Properties set:
- Source to the source from where you want to collect nodes for filtering.
For example, to apply your filter to all nodes in your project, select Root Object Source. You can select the output of another filter as the source from where you collect nodes for filtering. - Sorting Type to either:
- View z to arrange the nodes by their position along the z axis.
By arranging nodes into front-to-back ordering before rendering you can prevent overdraw.
Overdraw issues occur when one node is first drawn to an area of pixels in the back buffer, after which another node is presented that occludes the first node, and the same pixels are filled again. Excessive overdraw can decrease performance on the GPU in the form of increased fill-rate. If you order nodes so that the occluding node is drawn first, the occluded pixels do not have to be rendered again because of the depth buffering. See Preventing overdraw with the Sorting Filter. - Material type to group the nodes by their material type.
By grouping nodes by their material type you can optimize your Kanzi application, because that way Kanzi can decrease the number of shader switches. See Reducing shader switches.
- Either enable or disable the Reverse Order property:
- When enabled it reverses the current order of nodes.
- When disabled it keeps the current order of nodes.
- To take the Sorting Filter into use, in the Draw Objects Render Pass or Draw Objects With Material Render Pass that you use to render the 3D nodes to which you want to apply the filter, set the Object Source property to the Sorting Filter or to an object source which collects the Sorting Filter.
For example:-
In the Library > Rendering > Render Passes create a Group Render Pass and inside it create:
- Clear Render Pass
- Draw Objects Render Pass
- In the Library select the Draw Objects Render Pass that you created and in the Properties set the Object Source property to the filter that you created or to an object source which collects the filter. See Using object sources.
- In the Project select the Scene node to which you want to apply the filter and in the Properties set the Render Pass property to the Group Render Pass whose child Draw Objects Render Pass uses as its object source the filter you created.
Kanzi Studio renders the nodes collected by the filter.
Using Sorting Filter filters in the API
For details, see the KzuSortObjectSource
class in the API reference.
See also
Preventing overdraw with the Sorting Filter
Rendering partially transparent nodes
Reducing shader switches
Using the Contains Property Filter
Using the Property Is Equal Filter
Using the Object Type Filter
Using the Tag Filter
Filters
Rendering
Using object sources
Open topic with navigation